package com.hjl.dao.role;

import com.hjl.entity.Role;
import com.hjl.entity.User;
import org.apache.ibatis.annotations.Param;

import java.util.List;

public interface RoleMapper {

    /**
     *  增加角色信息
     * @param role
     * @return
     */
    public int addRoleInfo(Role role);


    /**
     *  修改角色信息
     * @param role
     * @return
     */
    public int updateRoleInfo(Role role);


    /**
     *  实现根据角色id删除角色信息的操作
     * @param id
     * @return
     */
    public int deleteRoleInfo(@Param("id")Integer id);


    /**
     *  实现根据角色名称模糊查询角色信息列表操作
     * @param roleName
     * @return
     */
    public List<Role> getListInfoByName(@Param("roleName")String roleName);


    /**
     *  使用if+set实现根据角色id修改角色信息的操作
     * @param role
     * @return
     */
    public int getUpdateRoleInfo(Role role);


    /**
     *  使用if+trim实现根据角色名称模糊查询角色列表信息并进行分页查询
     * @param roleName
     * @param currentPageNo
     * @param pageSize
     * @return
     */
    public List<Role> getRoleListInfoByName2(@Param("roleName")String roleName,
                                             @Param("currentPageNo")Integer currentPageNo,@Param("pageSize")Integer pageSize);


    /**
     *  实现根据角色名称模糊查询角色信息列表的操作
     * @param roleName
     * @return
     */
    public List<Role> getListInfoByName2(@Param("roleName")String roleName);


    /**
     *  实现角色信息的添加操作，使用 Spring 事务切面实现声明式业务管理
     * @param role
     * @return
     */
    public int add(Role role);


    /**
     *  实现根据角色id修改角色信息操作
     * @param role
     * @return
     */
    public int updateRoleInfoById(Role role);


    public int totalCount(@Param("userRole")Integer userRole);

    public int deleteUserInfo(@Param("userRole")Integer userRole);

    public int deleteRoleInfos(@Param("id")Integer id);
}
